對資料表進行初步檢視後,進行整理,以便後續進行資料視覺化。
import packages
定義後續使用之函數
## [1] "BTC-Oil-Gold-COVID.csv" "SP500.csv" "SP500_USnewcases.csv"
## [4] "TAIEX-COVID.csv" "TAIEX.csv" "TAIEX_7MA.csv"
## [7] "TAIEX_ROC.csv"
重新分類data frame,原本的data frame含有重複的欄位(例如疫情資料),僅保留所需欄位後,分類各類別資料並獨立各自成表。
## Date TW_COVID TW_COVID_ROC TW_COVID_7MA TW_COVID_7EMA TW_COVID_CUM
## 1 2021/4/1 6 0.0000000 3.428571 3.428571 1036
## 2 2021/4/2 3 -0.5596158 3.714286 3.321429 1039
## 3 2021/4/3 6 0.5596158 3.571429 3.991071 1045
## 4 2021/4/4 2 -0.8472979 3.571429 3.493304 1047
## 5 2021/4/5 1 -0.4054651 3.571429 2.869978 1048
## 6 2021/4/6 2 0.4054651 3.714286 2.652483 1050
## Date TW_COVID TW_COVID_std TW_COVID_ROC TW_COVID_7MA TW_COVID_7EMA
## 1 2021-04-01 6 -0.5921804 NA -0.5921804 -0.5921804
## 2 2021-04-02 3 -0.6062040 -0.4285714 -0.5991922 -0.5956863
## 3 2021-04-03 6 -0.5921804 0.7500000 -0.5968549 -0.5948098
## 4 2021-04-04 2 -0.6108785 -0.5714286 -0.6003608 -0.5988270
## 5 2021-04-05 1 -0.6155530 -0.3333333 -0.6033993 -0.6030085
## 6 2021-04-06 2 -0.6108785 0.5000000 -0.6046458 -0.6049760
台灣類股與美國類股資料數眾多,獨立處理。
## Date 水泥 水泥_std 水泥_ROC 水泥_7MA 水泥_7EMA
## 1 2021-04-01 185.38 -1.505895 NA -1.505895 -1.505895
## 2 2021-04-02 185.46 -1.496297 0.0004292306 -1.501096 -1.503495
## 3 2021-04-03 185.54 -1.486699 0.0004290464 -1.496297 -1.499296
## 4 2021-04-04 185.62 -1.477100 0.0004288624 -1.491498 -1.493747
## 5 2021-04-05 185.70 -1.467502 0.0004286786 -1.486699 -1.487186
## 6 2021-04-06 185.78 -1.457904 0.0004284949 -1.481899 -1.479865
## Date Energy Energy_std Energy_ROC Energy_7MA Energy_7EMA
## 1 2020-01-01 460.17 2.409713 NA 2.409713 2.409713
## 2 2020-01-02 460.34 2.412384 0.0003686276 2.411048 2.410381
## 3 2020-01-03 458.77 2.387721 -0.0034031300 2.403272 2.404716
## 4 2020-01-04 459.96 2.406414 0.0025882506 2.404058 2.405140
## 5 2020-01-05 461.15 2.425108 0.0025815689 2.408268 2.410132
## 6 2020-01-06 462.34 2.443802 0.0025749216 2.414190 2.418550
這邊我們先採用初步分別作出各指數原始值與新增確診人數原始值及各指數變動率對新增確診人數變動率兩種動圖去探索其中的關聯性。
指數包含美國SP500指數、台股大盤指數、比特幣、石油、黃金五種標的。
從此圖可以看出美國的股市只有在疫情初期受到劇烈的影響,疫情中期之後無論確診病例數為何,基本上標普500指數都是穩定上升,其中一個因素在於美國(甚至是全球各國)持續進行「量化寬鬆」的貨幣政策,針對特定對象進行「紓困」,並透過印鈔使市場上流動的資金增加,從而達到短期解決市場信心與消費不振的問題(參考資料)。
將大盤指數乘以100使圖表比較更直觀
初步看完以上資料的簡單關聯後,我們想利用rmse看不同時期病例數對指數的波動影響。
若單純觀察美國每日新增確診人數與美國SP500指數的RMSE,可以發現主要的波動有兩次,第一次落在2020年3月至4月,而第二次則是落在2020年12月至2021年1月。第一次的RMSE波動主要就是受到新冠肺炎疫情第一次升溫的影響(佐證資料)。第二次的RMSE波動則與第二次疫情升溫沒有太大影響,反而是因為美國2020年12月開始實施一系列疫情的應對措施,使得投資這對未來疫情的控制充滿了希望(佐證資料)。
該圖表將美國SP500的11個產業類股進行分別觀察,可以看出2020年11月以前的每日確診數與各類股指數波動都有一定的相關性,12月到1月這段期間的RMSE明顯提高,顯示出在這段期間類股指數的變動率遠大於確診數。也就是說美國新增確診數從1月逐漸下降,但是下降幅度不及各大類股上升的幅度。以下取出在2020年12月至2021年1月之間,RMSE波動最大的兩個產業類股與波動最小的兩個類股進行分析:
台灣類股資料處理
## group rmse cases sign category
## 1 2021-04-03 1.975718 18 -4.416496 水泥
## 2 2021-04-08 1.940253 8 -4.335758 水泥
## 3 2021-04-13 1.378141 12 -2.845938 水泥
## 4 2021-04-18 2.106813 10 4.273679 水泥
## 5 2021-04-23 4.851571 22 10.656778 水泥
## 6 2021-04-28 3.701146 28 8.206385 水泥
## [[1]]
## group rmse cases sign category
## 1 2021-04-03 1.975718 18 -4.416496 水泥
## 2 2021-04-08 1.940253 8 -4.335758 水泥
## 3 2021-04-13 1.378141 12 -2.845938 水泥
## 4 2021-04-18 2.106813 10 4.273679 水泥
## 5 2021-04-23 4.851571 22 10.656778 水泥
## 6 2021-04-28 3.701146 28 8.206385 水泥
## 7 2021-05-03 2.227369 32 4.801921 水泥
## 8 2021-05-08 3.687012 39 8.226952 水泥
## 9 2021-05-13 1.483121 276 0.343959 水泥
## 10 2021-05-18 2.670477 1350 -5.309960 水泥
## 11 2021-05-23 3.766543 2631 -7.785081 水泥
## 12 2021-05-28 4.135384 2704 -8.575037 水泥
## 13 2021-06-02 NA 1229 NA 水泥
##
## [[2]]
## group rmse cases sign category
## 1 2021-04-03 1.1039546 18 -2.4361176 食品
## 2 2021-04-08 0.5875681 8 -1.2647605 食品
## 3 2021-04-13 0.4487647 12 -0.8544397 食品
## 4 2021-04-18 2.8072908 10 5.7521719 食品
## 5 2021-04-23 3.7269371 22 8.3082600 食品
## 6 2021-04-28 4.8757079 28 10.5950537 食品
## 7 2021-05-03 3.8612663 32 8.0279943 食品
## 8 2021-05-08 3.6644260 39 8.0605632 食品
## 9 2021-05-13 2.1147026 276 -1.2098553 食品
## 10 2021-05-18 3.4676768 1350 -7.2524550 食品
## 11 2021-05-23 5.2021935 2631 -10.9593844 食品
## 12 2021-05-28 5.9686786 2704 -12.7463941 食品
## 13 2021-06-02 NA 1229 NA 食品
##
## [[3]]
## group rmse cases sign category
## 1 2021-04-03 0.6595552 18 -1.4539724 塑膠
## 2 2021-04-08 0.5321225 8 -0.1471981 塑膠
## 3 2021-04-13 1.6949282 12 3.4645667 塑膠
## 4 2021-04-18 4.4631510 10 9.9216069 塑膠
## 5 2021-04-23 3.8687476 22 8.6442750 塑膠
## 6 2021-04-28 3.7724747 28 8.3975065 塑膠
## 7 2021-05-03 3.2099512 32 7.1402532 塑膠
## 8 2021-05-08 3.2747842 39 7.1752434 塑膠
## 9 2021-05-13 2.4509069 276 -3.7500848 塑膠
## 10 2021-05-18 4.6418145 1350 -10.1245281 塑膠
## 11 2021-05-23 6.1664395 2631 -13.3664811 塑膠
## 12 2021-05-28 5.4896844 2704 -11.8263366 塑膠
## 13 2021-06-02 NA 1229 NA 塑膠
##
## [[4]]
## group rmse cases sign category
## 1 2021-04-03 2.6092270 18 -5.828981 紡織
## 2 2021-04-08 1.7831308 8 -3.788187 紡織
## 3 2021-04-13 0.8597888 12 -1.837450 紡織
## 4 2021-04-18 1.4074246 10 2.890790 紡織
## 5 2021-04-23 1.8676038 22 4.120869 紡織
## 6 2021-04-28 2.3561408 28 5.185687 紡織
## 7 2021-05-03 2.6130168 32 5.779520 紡織
## 8 2021-05-08 4.2417601 39 9.355849 紡織
## 9 2021-05-13 2.7161606 276 2.569889 紡織
## 10 2021-05-18 3.0668011 1350 -6.164871 紡織
## 11 2021-05-23 2.7175041 2631 -5.334274 紡織
## 12 2021-05-28 2.2418431 2704 -4.151119 紡織
## 13 2021-06-02 NA 1229 NA 紡織
##
## [[5]]
## group rmse cases sign category
## 1 2021-04-03 1.753062 18 3.913094 電機
## 2 2021-04-08 3.070448 8 6.732890 電機
## 3 2021-04-13 2.980063 12 6.604598 電機
## 4 2021-04-18 3.314377 10 7.407671 電機
## 5 2021-04-23 2.964677 22 6.563831 電機
## 6 2021-04-28 4.081344 28 9.098614 電機
## 7 2021-05-03 2.985621 32 6.168047 電機
## 8 2021-05-08 1.564066 39 3.448289 電機
## 9 2021-05-13 2.887599 276 -5.854297 電機
## 10 2021-05-18 5.340982 1350 -11.737978 電機
## 11 2021-05-23 6.566642 2631 -14.355650 電機
## 12 2021-05-28 6.126815 2704 -13.379775 電機
## 13 2021-06-02 NA 1229 NA 電機
##
## [[6]]
## group rmse cases sign category
## 1 2021-04-03 1.6174211 18 -3.615504 電纜
## 2 2021-04-08 1.2578495 8 -2.780159 電纜
## 3 2021-04-13 0.7426281 12 -1.577766 電纜
## 4 2021-04-18 0.9465281 10 1.965829 電纜
## 5 2021-04-23 1.5835264 22 3.443582 電纜
## 6 2021-04-28 4.5464617 28 9.877612 電纜
## 7 2021-05-03 4.1897434 32 9.238563 電纜
## 8 2021-05-08 5.1066677 39 11.388424 電纜
## 9 2021-05-13 2.1238049 276 1.698866 電纜
## 10 2021-05-18 3.0290207 1350 -6.426424 電纜
## 11 2021-05-23 4.9981911 2631 -10.706199 電纜
## 12 2021-05-28 4.3920201 2704 -9.085231 電纜
## 13 2021-06-02 NA 1229 NA 電纜
因台灣類股分類數量太多,不易呈現。我們將32類股分為:工業相關、電子相關與服務相關。
## [1] "水泥" "食品" "塑膠" "紡織" "電機" "電纜" "玻璃" "造紙"
## [9] "鋼鐵" "橡膠" "汽車" "營建" "航運" "觀光" "金融" "百貨"
## [17] "其他" "化學" "生技" "油電" "半導體" "電腦" "光電" "通信"
## [25] "零組件" "電通" "資服" "其他電" "化生" "電子" "窯製" "化工"
將台股類股指數變動率乘上100使數據直觀
經由前面所分析之台股與確診案例數的關係變化後,我們進一步透過網友們的情緒正負面態度,研究其是否也會反映股市或是確診人數的變化。
在 Covid-19 板中,valence 對 arousal 的散布圖無論採用情緒總分 (sum),或是考量到字詞多寡效果的平均分 (Avg),皆沒有呈現特定趨勢,因此改用加權分數做下一步分析。
Covid-19 板相對於 Stock 板,整體情緒分數呈現較為負面。而五月十五前後為台灣疫情爆發之時,Stock 板的情緒分數向下重挫,Covid-19 板反而沒有出現此向下趨勢。
接著探討 Covid-19 板是否與 Stock 板呈現相同趨勢。 由散布圖與趨勢線可得之兩者為弱負相關,趨勢線接近水平。
篩選時間區間後,做 valence 對 arousal 的散布圖,因不同時間的點相互混雜,不易判斷趨勢,因此考量情緒冷靜激動程度做加權分數。
加權分數計算方式:Σ[(word_valence - 5) * word_arousal],使加權情緒分數呈正面即分數為正,負面即分數為負。
圖上的粉紅與粉綠點為每篇文本的加權分數,而折線圖則是呈現每日平均情緒分數。
線上的紅點與深綠點為研究目標(台股或是新增病例數)的變化率,增加以紅點表示,下降則是深綠點,而變動幅度的大小以點的大小表示。
(折線圖的數值有經過放大,讓起伏較為明顯。)
Stock 版在新增病例變動率上,當出現負面情緒時(五月十五日前後),多為當日新增病例較前一日增加。
對於大盤,Stock 版在出現負面情緒的那幾天以跌居多,而大漲的時候也多為正面情緒。
類股部分,Stock 版在觀光與光電也有與上述所提相同的趨勢特性。
綜觀 ptt 情緒分析與股票的連結,在 4/1~5/31 此一期間,Covid-19 版的情緒變化與股票和新增病例數的連結較弱,而 Stock 板擇有顯現出與股票相連的特性。
但由於我們僅採用兩個月的文本內容作分析,且股票之大漲和大跌的數量本身不多,若要針對情緒和股票的連結下定論或甚者做預測,仍操之過急。
感謝閱讀。